#pragma once

#include <vector>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include "point_common.h"
#include <mutex>

// 点云显示类
class PointDisplay {
public:
    PointDisplay();
    ~PointDisplay();

    // 更新点云数据
    void updatePointCloud(const std::vector<Points>& points);

    // 显示点云
    void display();

    // 检查可视化窗口是否关闭
    bool wasStopped();

private:
    pcl::PointCloud<pcl::PointXYZI>::Ptr cloud;
    std::shared_ptr<pcl::visualization::PCLVisualizer> viewer;
    std::string cloudId;
    std::mutex mtx; // 新增互斥锁
};
